#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <unistd.h>

/* 
二维数组。定义参考： char a[4][2];
首先他是一维数组。他的每个元素为一维数组变量。
因此有：
a[0]为第一个元素，是一个一维数组，他具备一维数组所有特性。
a[0]有2个元素，分别为a[0][0],a[0][1].
a[0]值为地址。虽然a[0]与a相同。意义不同。
&a[0]的意义和a的意义一样，表示二位数组。
*/
#define CHECK_ARR2_ROWS 4
#define CHECK_ARR2_COLS 2

int main(int argc, char **argv)
{
    int arr2[CHECK_ARR2_ROWS][CHECK_ARR2_COLS];
    for (int i = 0/*c99*/; i < CHECK_ARR2_ROWS; i++)
    {
        for(int j = 0; j < CHECK_ARR2_COLS; j++)
        {
            arr2[i][j] = i * CHECK_ARR2_COLS + j;
        }
    }

    printf("[%s,%d]printf array : \n", __FILE__, __LINE__);
    for (int i = 0/*c99*/; i < CHECK_ARR2_ROWS; i++)
    {
        for(int j = 0; j < CHECK_ARR2_COLS; j++)
        {
            printf("%4d ", arr2[i][j]);
        }
        printf("\n");
    }


    int tmpSum = 0;
    for (int i = 0/*c99*/; i < CHECK_ARR2_ROWS; i++)
    {
        for(int j = 0; j < CHECK_ARR2_COLS; j++)
        {
            tmpSum += arr2[i][j];
        }
    }
    printf("[%s,%d]sum value=%d\n", __FILE__, __LINE__, tmpSum);
    return 1;
}
